package Ex7_2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Jogo {

	/**
	 * @param args
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws InterruptedException {
		int player1 = 0;
		int player2 = 0;

		Papel papel = new Papel();
		Pedra pedra = new Pedra();
		Tesoura tesoura = new Tesoura();
		
		String str1 = null;
		String str2 = null;

		List<Object> list = new ArrayList<>();
		list.add(papel);
		list.add(pedra);
		list.add(tesoura);
		while(true){
			//Player 1
			Collections.shuffle(list);
			Coisa c1 = (Coisa) list.get(0);
			if(c1 instanceof Papel){
				c1 = new Papel();
				str1 = "Papel";
			}
			if(c1 instanceof Pedra){
				c1 = new Pedra();
				str1 = "Pedra";
			}
			if(c1 instanceof Tesoura){
				c1 = new Tesoura();
				str1 = "Tesoura";
			}
			
			//Player 2
			Collections.shuffle(list);
			Coisa c2 = (Coisa) list.get(0);
			if(c2 instanceof Papel){
				c2 = new Papel();
				str2 = "Papel";
			}
			if(c2 instanceof Pedra){
				c2 = new Pedra();
				str2 = "Pedra";
			}
			if(c2 instanceof Tesoura){
				c2 = new Tesoura();
				str2 = "Tesoura";
			}

			
			System.out.println("Player 1   X   Player 2");
			System.out.println(str1 + " X " + str2);
			
			/**
			 * So tem q acertar o metodo partida.
			 * De alguma forma quando passa o rashCode pra outro metodo ele muda de valor.
			 * 
			 * Ou então podemos tira o metodo partida da classe Coisa e criar dentro da classe Jogo
			 * */
			int aux = c1.partida(str1, str2);
			if(aux == 1){
				player1++;
			}else if(aux == 2){
				player2++;
			}
			System.out.println(player1 + "     x    " + player2);		
			System.out.println("\n\n");
			Thread.sleep(1000); 
		}
	}
}
